Je hebt waarschijnlijk gemerkt in de vorige opdracht dat de spiraal dataset niet lukt met de beschikbare middelen. Het patroon is te complex. We gaan nu gebruik maken van zogenaamde "hidden layers". Dit zijn extra lagen tussen de input en output. Deze lagen zijn onzichtbaar voor de buitenwereld. Om te begrijpen wat hier het nut van is moeten we eerst iets beter begrijpen wat het neurale netwerk precies doet zonder die extra lagen.
Iedere keer dat een punt wordt geclassificeerd wordt er een lineaire combinatie van input gebruikt. Iedere input (I) heeft zijn eigen weight(w) die uitgebeeld wordt door de lijntjes. Dat gaat als volgt:
output = w1*I1 + w2*I2 + w3*I3 + w4*I4 + w5*I5 + w6*I6 + w7*I7 + een constante
Wat we nu gaan doen is deze formule niet rechtstreeks naar de output sturen, maar naar een hidden neuron, dan krijgen we:
hidden neuron = w1*I1 + w2*I2 + w3*I3 + w4*I4 + w5*I5 + w6*I6 + w7*I7 + een constante
We doen dit niet één keer, maar meerdere keren, voor meerdere neuronen. Ieder neuron gebruikt dus deze formule. Daarna maken we een lineaire combinatie met de waarde van elk neuron (n) die naar de output gaat:
output = w1*n1 + w2*n2 + w3*n3 + w4*n4 + w5*n5 + w6*n6 + w7*n7 + een constante
Dit neemt aan dat we maar één hidden layer hebben. Je kunt je voorstellen dat je op deze manier hele complexe patronen kunt maken en dat je ook veel meer weights hebt die je moet trainen.
Opdracht
Probeer nu opnieuw de spiraal te classificeren. Beantwoord daarbij de volgende vragen.